[Design pattern]: 设计模式相关系列
介绍
概念: 表示一个作用于某对象结构中的各元素的操作。它使你可以在不改变各元素的类的前提下定义作用于这些元素的新操作。
应用场景: 实体之间内部属性有差别,而且实体类型经常增加。他们的调用方式相同,但是调用的规则经常变化。
缺点: 实体的特殊内容访问类需要知道。
CODE
实体基类
1 | package note.com.visitor; |
具体实体
1 | package note.com.visitor; |
1 | package note.com.visitor; |
1 | package note.com.visitor; |
访问者接口定义
1 | package note.com.visitor; |
访问者实现
1 | package note.com.visitor; |
访问者与实体的组合类
1 | package note.com.visitor; |
测试类
1 | package note.com.visitor; |
结果
1 | 5块 *** 营养1 营养2 营养3 |
####好处:
- 如果要改变菜单中实体的具体显示,只需要更改访问者类的访问规则。
- 如果要加入新的实体,只需要扩展访问者类的访问规则。